/*
 * File:   GenericAdapterTest.h
 * Author: Guilherme Monteiro
 *
 */

#ifndef GENERICADAPTERTEST_H
#define	GENERICADAPTERTEST_H

#include <cppunit/extensions/HelperMacros.h>

#include "../headers/Cell.h"
#include "../headers/GenericAdapter.h"
#include "../headers/GenericModel.h"
#include "../headers/Model1.h"
#include "../headers/TranscriberMetaInfo.h"

#define EPSILON 0.001

using namespace std;

class GenericAdapterTest : public CPPUNIT_NS::TestFixture {
    CPPUNIT_TEST_SUITE(GenericAdapterTest);

    CPPUNIT_TEST(testAdaptCells1);
    CPPUNIT_TEST(testAdaptCells2);
    CPPUNIT_TEST(testAdaptCells3);
    CPPUNIT_TEST(testAdaptCells4);
    CPPUNIT_TEST(testAdaptPoint);
    CPPUNIT_TEST(testAdaptPoints);

    CPPUNIT_TEST_SUITE_END();

public:
    GenericAdapterTest();
    virtual ~GenericAdapterTest();
    void setUp();
    void tearDown();

private:
    GenericAdapter* genericAdapter1;
    GenericAdapter* genericAdapter2;
    GenericAdapter* genericAdapter3;
    GenericAdapter* genericAdapter4;
    
    vector<Cell> cells;
    
    double h_2_l_hor;
    double h_2_l_vert;
    double l_2_h_hor;
    double l_2_h_vert;
    
    void testAdaptCells1();
    void testAdaptCells2();
    void testAdaptCells3();
    void testAdaptCells4();
    
    void testAdaptPoint();
    void testAdaptPoints();

};

#endif	/* GENERICADAPTERTEST_H */

